import pandas as pd
import re
import time
import os
import shutil
from pick_utils import ReMatchFunc
from split_utils import special_split, rule_list_1

from process.pick_1 import pick_1
from process.pick_2 import pick_2
from process.split_1 import split_1
from process.split_2 import split_2
from process.classify_1 import classify_1



if __name__ == '__main__':

    # 使用说明 -----------------------------------
    time.sleep(1)
    print('===========================================================')
    print('简单说明：使用正则表达式拆分excel表中不规范的题名，初步提取对应需求字段')
    print('PS:')
    print('1.文件夹下需要有一个excel（只放一个，名称随意），其中一列“原题名”保存着待拆分的题名')
    print('2.拆分后的excel将新增几列拆分结果列，以 [拆分] 作为列名标记')
    print('===========================================================')
    time.sleep(0.5)
    # ------------------------------------------

    # 输入拆分规则 --------------------------
    print('功能选择：')
    print('1.【拆分】题名拆分，拆分符号  {}'.format(rule_list_1[0]))
    # print('0.题名提取')
    print('2.【拆分】文本加标点的特殊拆分方法')
    print('3.【提取】提取“拆分后元数据内容”到对应字段')
    print('4.【提取】提取“未匹配到的数据”对字段进行补充（人工处理时使用）')
    print('5.【归纳】对提取后的字段进行具体的归纳')

    rule_num = input('请选择执行功能：')
    rule_num = int(rule_num)
    # -------------------------------------

    # 输入操作路径 ----------------------------------------------------------------
    operate_dir = input('请输入excel目录（旺柴）:')  # D:\PycharmProjects\spiders\图片下载工具\excel
    operate_dir = os.path.abspath(operate_dir)
    # operate_dir = os.path.abspath(r'C:\Users\cxstar46\Desktop\正则表达式题名拆分测试')
    # -----------------------------------------------------------------------------

    # 读取配置文件 --------------------------------------
    # 只有功能1读取“原题名”存入“拆分后元数据内容”，其他程序都是读取“拆分后元数据内容”存入“拆分后元数据内容”
    if rule_num == 1:
        split_1(operate_dir)
    elif rule_num == 2:
        split_2(operate_dir)
    elif rule_num == 3:
        pick_1(operate_dir)
    elif rule_num == 4:
        pick_2(operate_dir)
    elif rule_num == 5:
        classify_1(operate_dir)
    else:
        print('命令输入有误！')
        input('按任意键退出...')
        raise Exception('123')
    # -------------------------------------------------

    input("按任意键退出...")

